package com.ruoyi.erp.domain.bo;

import com.ruoyi.common.annotation.query.*;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 往来单位明细业务对象 base_relate_unit_detail
 *
 * @author chenyun
 * @date 2022-03-06
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("往来单位明细业务对象")
public class RelateUnitDetailBo extends BaseEntity {

    /**
     * 编号
     */
    @EQ
    @ApiModelProperty(value = "编号", required = true)
    @NotNull(message = "编号不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 往来单位
     */
    @EQ
    @ApiModelProperty(value = "往来单位", required = true)
    @NotNull(message = "往来单位不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long relateUnitId;

    /**
     * 所属机构
     */
    @EQ
    @ApiModelProperty(value = "所属机构", required = true)
    @NotNull(message = "所属机构不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long orgId;

    /**
     * 类型
     */
    @EQ
    @ApiModelProperty(value = "类型", required = true)
    @NotBlank(message = "类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String relateUnitType;

    /**
     * 银行
     */
    @EQ
    @ApiModelProperty(value = "银行")
    private String bank;

    /**
     * 银行账号
     */
    @EQ
    @ApiModelProperty(value = "银行账号")
    private String bankAccount;

    /**
     * 手机
     */
    @EQ
    @ApiModelProperty(value = "手机")
    private String mobileTel;

    /**
     * 联系人
     */
    @EQ
    @ApiModelProperty(value = "联系人")
    private Long relatePersonId;

    /**
     * 部门
     */
    @EQ
    @ApiModelProperty(value = "部门", required = true)
    @NotNull(message = "部门不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long deptId;

    /**
     * 专管员
     */
    @EQ
    @ApiModelProperty(value = "专管员", required = true)
    @NotNull(message = "专管员不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long employeeId;

    /**
     * 折扣率
     */
    @EQ
    @ApiModelProperty(value = "折扣率")
    private BigDecimal discRate;

    /**
     * 信用等级
     */
    @EQ
    @ApiModelProperty(value = "信用等级")
    private String creditGrade;

    /**
     * 信用额度
     */
    @EQ
    @ApiModelProperty(value = "信用额度")
    private BigDecimal creditLine;

    /**
     * 信用期限
     */
    @EQ
    @ApiModelProperty(value = "信用期限")
    private Long creditDate;

    /**
     * 支付方式
     */
    @EQ
    @ApiModelProperty(value = "支付方式")
    private Long payMethodId;

    /**
     * 价格清单
     */
    @EQ
    @ApiModelProperty(value = "价格清单")
    private Long priceBillId;

    /**
     * 期初应收/付
     */
    @EQ
    @ApiModelProperty(value = "期初应收/付")
    private BigDecimal paid;

    /**
     * 期初其他应收/付
     */
    @EQ
    @ApiModelProperty(value = "期初其他应收/付")
    private BigDecimal otherPaid;

    /**
     * 期初预收/付
     */
    @EQ
    @ApiModelProperty(value = "期初预收/付")
    private BigDecimal prePaid;

    /**
     * 业务余额
     */
    @EQ
    @ApiModelProperty(value = "业务余额")
    private BigDecimal leavePaid;

    /**
     * 发运目的地
     */
    @EQ
    @ApiModelProperty(value = "发运目的地")
    private String transTo;

    /**
     * 发运提前期
     */
    @EQ
    @ApiModelProperty(value = "发运提前期")
    private Long transAdvance;

    /**
     * 发运方式
     */
    @EQ
    @ApiModelProperty(value = "发运方式")
    private String transType;

    /**
     * 状态
     */
    @EQ
    @ApiModelProperty(value = "状态", required = true)
    @NotBlank(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private String status;

    /**
     * 备注
     */
    @EQ
    @ApiModelProperty(value = "备注")
    private String remark;


}
